import { http } from "@/utils/http";

/**
 * 项目数量统计（JSON序列化后的对象格式）
 * key: 主类别（教研工作量、科研工作量、育人工作量、服务工作量、其他工作量）
 * value: 各状态的项目数量统计对象
 *   - key: 状态（DRAFT、PENDING_AUDIT、REJECTED、APPROVED）
 *   - value: 数量
 */
export type ProjectCountStatistics = Record<
  string,
  Record<string, number>
>;

/**
 * 分数信息DTO
 */
export interface ScoreInfoDTO {
  /** 科研工作量 */
  researchWorkload?: number;
  /** 教研工作量 */
  teachingWorkload?: number;
  /** 育人工作量 */
  educationWorkload?: number;
  /** 服务工作量 */
  serviceWorkload?: number;
  /** 其他工作量 */
  otherWorkload?: number;
  /** 通用课程分数 */
  generalCourseScore?: number;
  /** 专业课程分数 */
  majorCourseScore?: number;
  /** 实验课程分数 */
  labCourseScore?: number;
  /** 待审核分数 */
  pendingScore?: number;
  /** 已审核总分 */
  approvedTotalScore?: number;
}

/**
 * 绩效上报项统计DTO
 */
export interface SubmissionStatisticsDTO {
  /** 项目数量统计（按类别和状态） */
  projectCountByCategoryAndStatus?: ProjectCountStatistics;
  /** 分数信息 */
  scoreInfo?: ScoreInfoDTO;
}

/**
 * 获取本人申报的项目数量信息和分数信息
 * 对应 Java: StatisticsController.java -> mySubmissionStatistics()
 */
export function getMySubmissionStatisticsApi() {
  return http.request<ResponseData<SubmissionStatisticsDTO>>(
    "get",
    "/performance/statistics/mySubmissionStatistics"
  );
}

